// pages/cart/cart.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    ispay:true,
    switch:"管理",
    cart: [],
    storage:[],
    cartlenght: 0,
    allChecked: false
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
  },
  // 商品选中
  handeItemChange(e) {
    // 获取被修改的商品的id
    const goods_id = e.currentTarget.dataset.id
    // 获取购物车数组
    let { cart } = this.data;
    // 找到被修改的商品对象
    let index = cart.findIndex(v => v.goods_id === goods_id);
    // 选中状态取反
    cart[index].checked = !cart[index].checked;

    this.setCart(cart);
  },
  // 计算底部工具栏
  setCart(cart){
    let allChecked = true
    // 总数量 总价格
    let totalPrice = 0
    let totalNum = 0
    cart.forEach(v => {
      if (v.checked) {
        totalPrice += v.num * v.goods_price
        totalNum += v.num
      } else {
        allChecked = false
      }
    })
    // 判断数据是否为空
    allChecked = cart.length != 0 ? allChecked : false;
    // 给data赋值
    this.setData({
      cart,
      cartlenght: cart.length,
      totalPrice,
      totalNum,
      allChecked
    })
    wx.setStorageSync("cart", cart);
  },
  // 全选功能
  handleItemAllCheck(){
    // 获取data中的数据
    let {cart,allChecked} = this.data;
    // 修改值
    allChecked = !allChecked
    // 循环修改cart数组中的商品的选中状态
    cart.forEach(v=>v.checked=allChecked);
    // 把修改后的值重新赋值到data和缓存中
    this.setCart(cart);
  },
  // 商品数量的编辑功能
  handleItemNumEdit(e){
    // 获取传递过来的参数
    const {operation,id} = e.currentTarget.dataset
    // console.log(operation,id);
    // 获取购物车数组
    let {cart} =this.data;
    // 找到需要修改的商品的索引
    const index = cart.findIndex(v=>v.goods_id===id);
    // 进行修改数量
    if(cart[index].num>1){
      cart[index].num += operation;
    }else{
      if(operation==1){
        cart[index].num += operation;
      }
    }
    

    // 设置回缓存和data中
    this.setCart(cart);
  },
  // 管理功能 切换结算和删除功能
  handleItemSwitch(){
    var ispay = this.data.ispay
    var switchs = this.data.switc
    if(ispay===true){
      ispay=false
      switchs="取消"
    }else{
      ispay=true
      switchs="管理"
    }
    this.setData({
      ispay:ispay,
      switch:switchs
    })
  },
  // 删除功能
  handleItemDelete(){
    // 获取购物车数组
    let { cart } = this.data;
    // 找出未选中的商品
    cart.forEach(v => {
      if(!v.checked){
        this.data.storage.push(v);
        wx.removeStorageSync(cart);
      }
    })
    wx.setStorageSync("cart",this.data.storage)
    this.setData({
      cart:this.data.storage,
      totalPrice:0,
      totalNum:0,
      cartlenght:0
    })
    
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    // 获取缓存中的购物车数据
    const cart = wx.getStorageSync('cart') || [];
    this.setCart(cart);
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})